Re: Buffers and MacOS X - Mailing list pgsql-general

From Jeffrey Bohmer
Subject Re: Buffers and MacOS X
Date
Msg-id p04330100b9d9d4e35e84@[192.168.1.201]
Whole thread Raw
In response to Re: Buffers and MacOS X  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: Buffers and MacOS X
List pgsql-general
>Tom Lane wrote:
>> Hunter Hillegas <lists@lastonepicked.com> writes:
>> > We are installing postgres on a MacOS X Server...
>> > On our Linux box, we had to muddle with some parameters to be able to
>> > increase the shared memory and buffers in postgres.
>> > Does anyone know how to do this in OS X? Or is it required?
>>
>> In OS X 10.1, the max shared memory was a hardwired number that couldn't
>> be changed without recompiling the kernel --- and the standard setting
>> was none too darn large, either :-(.  I dunno if Apple has improved
>> matters in 10.2.
>
>I was going to point him to the development docs, but I see no mention
>of OSX shared kernel limit tuning in there at all.  Can someone submit
>info to beef it up for OSX?


Here are instructions for setting shared memory limits on Mac OS X 10.2.

Edit the file:

    /System/Library/StartupItems/SystemTuning/SystemTuning

Near the bottom, you will see these lines:

    sysctl -w kern.sysv.shmmax=4194304
    sysctl -w kern.sysv.shmmin=1
    sysctl -w kern.sysv.shmmni=32
    sysctl -w kern.sysv.shmseg=8
    sysctl -w kern.sysv.shmall=1024

These parameters are described in this document:

    http://www.postgresql.org/idocs/index.php?kernel-resources.html

OS X is simialar to BSD/OS in the values for each parameter.  For my system, I want PostgreSQL to use 128MB worth of
buffers. I used the calculations provided in the "Reasonable Values" column of the parameters table in the document
above.

So here are my settings (allowing a little extra room):

    sysctl -w kern.sysv.shmmax=167772160    # bytes
    sysctl -w kern.sysv.shmmin=1
    sysctl -w kern.sysv.shmmni=32
    sysctl -w kern.sysv.shmseg=8
    sysctl -w kern.sysv.shmall=65536        # 4K pages

Now, I can set shared_buffers in postgresql.conf to:

    shared_buffers = 16384    # number of buffers, 8K each

- Jeff
--

Jeff Bohmer
VisionLink, Inc.
_________________________________
303.402.0170
www.visionlink.org
_________________________________
People. Tools. Change. Community.

pgsql-general by date:

Previous
From: Richard Huxton
Date:
Subject: Re: plpgsql and escape
Next
From: Ericson Smith
Date:
Subject: Numerous postmaster processes after upgrading to 7.2.3